import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Write a description of class Piedrita here.
 * 
 * @author Montes Alonso Irli Natali
 * @version Programacion Orientada a Objetos
 */
public class Piedrita extends Obstaculo
{
    private boolean seEncuentraCaja;

    /**
     * Metdo de actua
     */
    public void act() 
    {
        espinitaMePego();

        if(!siPiedritaEncuentraCaja()&&!siPiedritaEncuentraMaderita())
            this.caeObjeto();
    }    

    /**
     * Metodo para hacer que cuando la piedrita vaya callendo y se tope con una caja de madera se
     * detenga y deje de caer.
     */
    public boolean siPiedritaEncuentraCaja()
    {
        Actor caja=super.getOneIntersectingObject(Cajas.class);    

        if(caja!=null)
            seEncuentraCaja=true;
        else
            seEncuentraCaja=false;
        return seEncuentraCaja;
    }

    /**
     * Metodo para detectar si una piedra cayo en una madera
     * @return true si se encontro una piedra
     * @return false si no se encontro una piedra encima de la madera
     */
    public boolean siPiedritaEncuentraMaderita()
    {
        Actor maderita=super.getOneIntersectingObject(Maderita.class);    

        if(maderita!=null)
            return true;
        else
            return false;
    }

    /**
     * Metodo que checa si a la piedra le pega una espina si es asi se elimina la espina
     * @return true cuando la piedra encuentra una espina y se elimina
     * @return false cuando no se encontro nada
     */
    public boolean espinitaMePego()
    {
        Actor espina=super.getOneIntersectingObject(Espina.class);
        World mundo;
        mundo=super.getWorld();
        if(espina != null)
        {
            mundo.removeObject(espina);
            return true;
        }
        return false;
    }
}
